package com.distrimas.senta.servicios.seguridad;

import com.distrimas.senta.dominio.contabilidad.nomina.CargoDTO;
import com.distrimas.senta.dominio.contabilidad.nomina.EmpleadoDTO;
import com.distrimas.senta.servicios.conexion.Conexion;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class UsuarioDAO {

    private static UsuarioDAO dao;

    public static UsuarioDAO getUsuarioDAO(){
        if(dao == null){
            dao = new UsuarioDAO();
        }
        return dao;
    }
    
    public UsuarioDTO getUsuario(UsuarioDTO usuario){
        UsuarioDTO result = null;
        Connection con = null;
        try{
            con = Conexion.getConnection();
            PreparedStatement p = con.prepareStatement(UsuarioDAOHelper.getUsuario());

            p.setString(1, usuario.getNombre());
            ResultSet rs = p.executeQuery();

            while(rs.next()){
                UsuarioDTO us = new UsuarioDTO();
                us.setNombre(rs.getString(1));
                us.setContrasena(rs.getString(2));
                EmpleadoDTO em = new EmpleadoDTO();
                em.setId(rs.getString(3));
                em.setNombre(rs.getString(4));
                em.setEstado(rs.getString(5));
                CargoDTO cargo = new CargoDTO();
                cargo.setCodigo(rs.getString(6));
                em.setCargo(cargo);
                us.setEmpleado(em);
                result = us;
            }
        }
        catch(Exception ex){
                ex.printStackTrace();
        }
        finally{
            try{
                Conexion.returnConnection(con);
            }
            catch(Exception clo){}
        }
        return result;
    }

}
